100 REM SNAKE V1.0 * COMPLETED 9/90 * EDITED 9/6/91 BY DAVID CARUSO II 110 POKE53265,11:DV=PEEK(186):IFDV<8THENDV=8 120 A=2:F4=3 130 POKE53272,24:GOSUB1020 140 POKE54272,0:V=54276:T=54273:POKE54296,15:A=RND(TI) 150 C=1:SC=0:F=0:P=0:O=0:POKE53280,14:POKE53281,0:C5=0:MO=0:YS=0:HX=0:LH=0:SP=BS 160 BO=0:BN=INT(RND(1)*200)+400 170 POKE53265,11:GOSUB1780:POKE53265,27 180 GOTO1070 190 GOSUB200:GOTO350 200 POKE53280,14 210 POKE53265,11:PRINT"[154][147] \SNAKE\ SCORE [211] [255] [146]";:GOSUB1270 220 A=F:GOSUB1010:IFA=0THENB$=" " 230 PRINT"";B$;"[146]";:POKEV,17:DI=0 240 FORG=1TO23:PRINT" [146]  [146]";:POKET,G*2 250 NEXT:POKEV,16 260 PRINT" [146]":POKE2023,160:POKE53265,27 270 HB=INT(RND(1)*3)+5 280 CS=7:RETURN 290 IFK=-1ORK=1THENA=67:GOTO310 300 A=66 310 SC=SC+1:E=E+1:IFE>UTHENGOSUB1530 320 RETURN 330 GOSUB2220:SH=3:LY=INT(L/40):LX=L-(LY*40):SP=SP-6:POKE1054,160:POKE1058,160 340 MF=F:MP=O:F=0:O=0:POKE1058,160:GOTO450 350 A=INT(RND(1)*20)+11:G=INT(RND(1)*9)+8:L=(G*40)+A 360 A=INT(RND(1)*4)+1:K=1:IFA=2THENK=-1 370 IFA=3THENK=40 380 IFA=4THENK=-40 390 GOSUB890 400 IFSH=0THENSC=SC+1:EX=EX+1:POKE1024+L,87:POKE55296+L,5:E=E+1:IFE>UTHENGOSUB1530 410 IFDI=1THENGOSUB1680 420 IFMO=1THENGOSUB2300:IFC5=1THEN1370 430 BO=BO+1:IFBO>BNTHENGOSUB1550 440 IFLH>1THENLH=LH-1:IFLH=1THEN330 450 IFLH=1THENGOSUB290:POKE55296+L,C:POKE1024+L,A:GOSUB2150 460 IFP>0THENPOKEV,17:POKET,P:FORG=1TO1:NEXT:POKEV,16 470 A=SC:GOSUB1010:PRINT"[154]";B$:GOTO490 480 POKEV,17:POKET,47:FORG=1TO1:NEXT:POKEV,16:RETURN 490 FORG=1TOSP:NEXT:GETA$:IFA$=""THEN610 500 IF(A$="K"ORA$="")ANDK<>40ANDK<>-40THENK=40:GOSUB480:JD=1:GOTO620 510 IF(A$="I"ORA$="[145]")ANDK<>-40ANDK<>40THENK=-40:GOSUB480:JD=1:GOTO620 520 IF(A$="L"ORA$="")ANDK<>1ANDK<>-1THENK=1:GOSUB480:JD=1:GOTO620 530 IFA$="S"THENGOSUB1510 540 IF(A$="J"ORA$="[157]")ANDK<>-1ANDK<>1THENK=-1:GOSUB480:JD=1:GOTO620 550 IFCS=7ANDA$=" "THEN490 560 IFA$=" "ANDF>0THENPOKE53265,11:GOSUB2480:MO=0:GOSUB2250:GOSUB200:GOTO620 570 IF(A$="U"ORA$=CHR$(13))ANDO>0ORA$="P"ANDO>0THENP=40:O=O-1:GOSUB1270:GOTO620 580 IFA$="-"THENSP=SP+2:BS=BS+2:GOTO620 590 IFA$=CHR$(3)THENGOSUB1350 600 IFA$="+"THENGOSUB720 610 CS=0:JY=PEEK(56320)OR128:IFJY<>255THEN2080 620 GOSUB830 630 H=PEEK(K+L+1024):IFH<>32THEN750 640 IFP=0THEN660 650 P=P-1:C=INT(P/3)+2 660 POKE55296+L,C:POKE1024+L,DE:IFP=0THENC=1:NH=0 670 IFSH=7THEN1370 680 K2=K:L=L+K:FS=FS+1:IFFS=30THENFS=0:GOSUB920 690 IFPEEK(K+L+1024)=87THENSP=SP+6:GF=1 700 W=W+1:IFW>HBTHEN1310 710 GOTO400 720 SP=SP-2:IFSP<0THENSP=0 730 BS=BS-2:IFBS<0THENBS=0 740 RETURN 750 IFH=83THENPOKE53280,1:SC=SC+25:GOTO960 760 IFH=90ANDP=0ANDLH<>1THEN1650 770 IFH>128ANDH<192THEN910 780 IFH=94THENPOKE53280,1:SC=SC+25:GOTO1240 790 IFH=87THENSH=0:SP=SP+6:LH=0:GOSUB2230:GOTO660 800 IFP>0THEN650 810 IFH=90ANDLH=1THEN660 820 SH=7:GOTO660 830 IFJD=3THENRETURN 840 IFJD=2THEN890 850 JD=2:IFK=1ANDK2=40ORK=-40ANDK2=-1THENDE=109:RETURN 860 IFK=40ANDK2=-1ORK=1ANDK2=-40THENDE=112:RETURN 870 IFK=-1ANDK2=40ORK=-40ANDK2=1THENDE=125:RETURN 880 DE=110:RETURN 890 JD=3:IFK=-40ORK=40THENDE=66:RETURN 900 DE=67:RETURN 910 SH=7:GOTO660 920 FORG=1TO2:POKEV,17:POKET,20:FORH=1TO10:NEXT:POKEV,16:FORH=1TO35:NEXT:NEXT 930 A=INT(RND(1)*10)+1:IFA>5THEN1160 940 A=INT(RND(1)*917)+42:IFPEEK(1024+A)=160THEN920 950 POKE55296+A,10:POKE1024+A,83:RETURN 960 POKEV,33:POKET,10:FORG=1TO15:NEXT:POKEV,32 970 IFF=1THEN990 980 F=F+1:A=F:GOSUB1010:PRINT"";B$ 990 POKE53280,14:IFLH=1THENA$=" ":GOTO560 1000 GOTO660 1010 B$=STR$(A):B$=RIGHT$(B$,LEN(B$)-1):RETURN 1020 F4=5:A=RND(TI):CLOSE8:OPEN15,DV,15:OPEN8,DV,8,"SNAKE FILE,S,R" 1025 INPUT#8,HS,BS,NA$:INPUT#15,A$:CLOSE8:F4=0 1030 FORG=54272TO54296:POKEG,0:NEXT:POKE54277,30:POKE54278,0:SO=1 1040 IFLEN(NA$)=0THENNA$="JOHN GALT" 1050 IFBS<1THENBS=70 1060 RETURN 1070 GETA$:IFA$=""THEN1070 1080 IFA$="Q"THEN1110 1090 IFA$="[200]"THEN1180 1100 GOTO190 1110 PRINTC$;"[145][145][145][145][145][145][145][157][157][157][157][157][157][157][157][157][157][157][157] SURE? (Y/N)" 1120 GETA$:IFA$<>"Y"ANDA$<>"N"THEN1120 1130 IFA$="Y"THEN2570 1140 PRINTC$;"[145][145][145][145][145][145][145][157][157][157][157][157][157][157][157][157][157][157][157] "; 1150 GOSUB2050:GOTO1070 1160 A=INT(RND(1)*917)+42:IFPEEK(1024+A)=160THEN1160 1170 POKE55296+A,7:POKE1024+A,94:RETURN 1180 REM CLEAR HIGH SCORE 1190 PRINTC$;"[158] \\\ CLEARING \\\ "; 1200 CLOSE15:OPEN15,DV,15:PRINT#15,"S0:SNAKE FILE":CLOSE15 1210 BS=70:HS=100:NA$="JOHN GALT" 1220 CLOSE8:OPEN8,DV,8,"SNAKE FILE,S,W":PRINT#8,HS:PRINT#8,BS:PRINT#8,NA$:CLOSE8 1230 GOSUB2000:GOTO1070 1240 POKEV,33:POKET,30:FORG=1TO15:NEXT:POKEV,32 1250 IFO=3THEN1290 1260 O=O+1:GOSUB1270:GOTO1290 1270 A=O:GOSUB1010:IFA=0THENB$=" " 1280 PRINT"";B$:RETURN 1290 POKE53280,14:IFLH=1THENPOKE198,1:POKE631,47 1300 GOTO660 1310 A=INT(RND(1)*917)+42:IFPEEK(1024+A)<>32ANDCK<5THENCK=CK+1:GOTO1310 1320 FORG=1TO4:IFA=(K*G)+LTHENPOKE64,206:GOTO1310 1330 NEXT:CK=0:POKEV,17:POKET,11:FORG=1TO10:NEXT:POKEV,16 1340 POKE1024+A,214:POKE55296+A,15:W=0:GOTO400 1350 GETA$:IFA$=""THEN1350 1360 RETURN 1370 POKE53280,2:POKEV,129:FORG=100TO20STEP-1:POKET,G:NEXT:FORG=1TO10:NEXT:SH=0 1380 A=HX:GOSUB1010:A$="BONUS \"+B$:SC=SC+HX 1390 A=SC:GOSUB1010:A$=A$+"\ FINAL SCORE \"+B$+"\" 1400 B$=" ":PRINT"[154]";B$ 1410 A$=LEFT$(B$,20-INT(LEN(A$)/2))+A$:PRINT"";A$ 1420 POKEV,128:POKET,0:POKE54272,0:POKE198,0:IFSC>HSTHENHS=SC:GOTO1460 1430 PRINT"[154] (PRESS A KEY) [146]" 1440 GETA$:IFA$=""THEN1440 1450 GOTO150 1460 A$="?":PRINT" HIGH SCORE! YOUR NAME: [157][157][157][157][157][157][157][157][157][157][157]"; 1470 GOSUB1700:NA$=M$ 1480 CLOSE15:OPEN15,DV,15:PRINT#15,"S0:SNAKE FILE":CLOSE15 1490 CLOSE8:OPEN8,DV,8,"SNAKE FILE,S,W":PRINT#8,HS:PRINT#8,BS:PRINT#8,NA$:CLOSE8 1500 GOTO1430 1510 IFSO=1THENPOKE54296,0:SO=0:RETURN 1520 SO=1:POKE54296,15:RETURN 1530 HB=HB-1:E=0:U=INT(RND(1)*30)+90:IFHB<2THENHB=2 1540 RETURN 1550 BN=INT(RND(1)*200)+400:BO=0 1560 A=INT(RND(1)*3)+1:IFA<>2THENRETURN 1570 A=INT(RND(1)*1000)+1:IFPEEK(1024+A)=32THEN1600 1580 CR=CR+1:IFCR=6THENRETURN 1590 GOTO1570 1600 CR=0:SL=A:POKE1024+A,90:POKE55296+A,3:DI=1 1610 POKEV,17:FORG=80TO190:POKET,G:NEXT:POKEV,16:RETURN 1620 IFF4=5THENHS=100:NA$="JOHN GALT":SP=70:CLOSE8:F4=0:GOSUB1030:GOTO140 1630 IFF4=3THENGOSUB1020:GOTO140 1640 POKE53280,0:POKE53265,11:FORG=1TO2000:NEXT:POKE186,DV:RUN 1650 A=53280:POKEA,11:SC=SC+500:POKEV,17:FORG=20TO90:POKET,G:NEXT:POKEA,12:DI=0 1660 FORG=90TO60STEP-1:POKET,G:NEXT:POKEA,15 1670 FORG=60TO130:POKET,G:NEXT:POKEV,16:POKEA,14:GOTO660 1680 J=J+1:IFJ=16THENJ=1 1690 POKE55296+SL,J:RETURN 1700 M$="":M=0 1710 GETA$:IFA$=""THEN1710 1720 A=ASC(A$):IFA=32ORA=46THEN1760 1730 IFA$=CHR$(13)ANDM>0THENRETURN 1740 IFA=20ANDM>0THEN1770 1750 IFA<65ORA>90ORM=11THEN1710 1760 M=M+1:M$=M$+A$:PRINT"";A$;:GOTO1710 1770 M=M-1:M$=LEFT$(M$,M):PRINT"[157] [157]";:GOTO1710 1780 WS=1:POKE53280,2:PRINT"[158][147] S N A K E "; 1790 PRINT" "; 1800 PRINT" BY DAVID CARUSO II "; 1810 PRINT" "; 1820 PRINT"[146][155]GUIDE YOUR SNAKE BETWEEN WALLS AND" 1830 PRINT"ROCKS. COLLECT SPECIAL ITEMS ALONG" 1840 PRINT"THE WAY. USE FIRE ([150][211][155]) TO CLEAR AREA." 1850 PRINT"BONUS IS AWARDED FOR THINGS BURNED. 1860 [153]"USE POWER (SYS(null)LIST) TO POUND THROUGH ALL" 1870 [153]"OBSTACLES AND COLLECT ITEMS. DO NOT" 1880 [153]"LOSE YOUR MIND WHILE PLAYING.":[153]"CONTFREFREFREFREFREFREFREFRE" 1890 [153]" POINTS WAIT DEF(null)CONT..25 SYS(null)CONT..25 PRINT(null)CONT..500 OPENSPC(CONT..?":[153]"POSPOSPOSPOSPOSPOSPOSPOS" 1900 [153]" KEYS TO USE WAIT"; 1910 [153]"POSPOSPOSPOSPOS POSPOSPOSPOSPOSPOSPOSPOSPOSPOSPOS" 1920 [153]" [I] WAIT LISTNORTH  [SPACE] WAIT LISTSTART FIRE" 1930 [153]" [K] WAIT LISTSOUTH  [U] [P] WAIT LISTUSE POWER" 1940 [153]" [J] WAIT LISTWEST  [STOP] WAIT LISTPAUSE" 1950 [153]" [L] WAIT LISTEAST  [+] [-] WAIT LISTALTER SPEED" 1960 [153]" [Q] WAIT LISTQUIT  [SHIFT-H] WAIT LISTCLEAR HIGH" 1970 [153]"USRUSRUSRUSRUSR USRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSR" 1980 C$[178]"" 1990 [153]C$;" CURRENT HIGH SCORE "; 2000 A$[178]" ":[151]198,0 2010 [153]C$;"SYS";A$;:[151]2023,160 2020 A[178]HS:[141]1010:B$[178]B$[170]" BY "[170]NA$ 2030 B$[178][200](A$,20[171][181]([195](B$)[173]2))[170]B$ 2040 [153]C$;"SYS";B$; 2050 [153]"" 2060 [142] 2070 [151]V,17:[151]T,47:[129]G[178]1[164]1:[130]:[151]V,16:[142] 2080 [139]JY[178]254[175]K[179][177]40[175]K[179][177][171]40[167]K[178][171]40:[141]2070:JD[178]1:[137]620 2090 [139]JY[177]244[175]JY[179]248[175]K[179][177][171]1[175]K[179][177]1[167]K[178]1:[141]2070:JD[178]1:[137]620 2100 [139]JY[178]253[175]K[179][177][171]40[175]K[179][177]40[167]K[178]40:[141]2070:JD[178]1:[137]620 2110 [139]JY[177]248[175]JY[179]252[175]K[179][177]1[175]K[179][177][171]1[167]K[178][171]1:[141]2070:JD[178]1:[137]620 2120 [139]JY[178]239[167]A$[178]" ":[137]560 2130 [139]JY[179]239[167]A$[178]"/":[137]570 2140 [137]620 2150 [139]GF[178]1[167]SH[178]0:GF[178]0:LH[178]0:[141]2230:[142] 2160 [151]1024[170]LX[170](40[172]LY),32 2170 LX[178]LX[170]DX:[139][194](1024[170]LX[170](40[172]LY))[179][177]32[167]DX[178][171]DX:[141]2220:LX[178]LX[170]2[172]DX 2180 LY[178]LY[170]DY:[139][194](1024[170]LX[170](40[172]LY))[179][177]32[167]DY[178][171]DY:[141]2220:LY[178]LY[170]2[172]DY 2190 [139][194](1024[170]LX[170](40[172]LY))[179][177]32[167]2170 2200 [151]1024[170]LX[170](40[172]LY),87:[151]55296[170]LX[170](40[172]LY),5 2210 [142] 2220 [151]V,17:[151]T,29:[129]G[178]1[164]1:[130]:[151]V,16:[142] 2230 F[178]MF:O[178]MP:[141]1270:[139]F[178]1[167][151]1054,177 2240 [142] 2250 A1[178][181]([187](1)[172]100)[170]1:[139]A1[177]23[167][142] 2260 UH[178]0:MO[178]1:F[178]0:R2[178][181]([187](1)[172]21)[170]2:C2[178][181]([187](1)[172]38)[170]1 2270 G[178][181](L[173]40):A[178]L[171](G[172]40):[139][182](R2[171]G)[179]8[176][182](C2[171]A)[179]8[167]2260 2280 WS[178]WS[170].3:[139]WS[177]3[167]WS[178]3 2290 XD[178]WS:[142] 2300 [139]YS[178][181](XD)[167]YS[178]0:[142] 2310 YS[178]YS[170]1 2320 [139]LH[178]1[167]RS[178]LY:CS[178]LX:[137]2340 2330 RS[178][181](L[173]40):CS[178]L[171](RS[172]40) 2340 [151]1024[170](R2[172]40)[170]C2,32 2350 [139]R2[177]RS[167]R2[178]R2[171]1:[137]2370 2360 [139]R2[179]RS[167]R2[178]R2[170]1 2370 [139]C2[177]CS[167]C2[178]C2[171]1:[137]2390 2380 [139]C2[179]CS[167]C2[178]C2[170]1 2390 [151]V,33:[151]T,12:[129]G[178]1[164]5:[130]:[151]V,32 2400 A[178](R2[172]40)[170]C2:[139][194](1024[170]A)[179][177]32[167][151]1024[170]A,230:[141]2450:[137]2420 2410 [151]1024[170]A,102 2420 [151]55296[170]A,3 2430 [139]C2[178]CS[175]R2[178]RS[167]C5[178]1 2440 [142] 2450 UH[178]UH[170]1:[139]UH[178]40[167]XD[178]XD[170]1:UH[178]0 2460 [139]XD[177]4[167]XD[178]4 2470 [142] 2480 F[178]F[171]1:[139]MO[178]1[167]SC[178]SC[170](([181](WS)[171]1)[172]100) 2490 EX[178][181](EX[173]2):SC[178]SC[170]EX:[139]EX[177]HX[167]HX[178]EX 2500 [139]LH[177]0[167]2560 2510 A[178][181]([187](1)[172]100)[170]1:[139]A[177]22[167]2560 2520 LH[178][181]([187](1)[172]400)[170]50:A[178][181]([187](1)[172]4)[170]1:[139]A[178]1[167]DY[178][171]1:DX[178][171]1 2530 [139]A[178]2[167]DY[178][171]1:DX[178]1 2540 [139]A[178]3[167]DY[178]1:DX[178]1 2550 [139]A[178]4[167]DY[178]1:DX[178][171]1 2560 EX[178]0:[142] 2570 [143] ***** PLACE ROUTINE HERE **** 2580 [143] 2590 [153]"LOADSYS 60000 CLOSE15:A$="HELLO CONNECT":OPEN15,8,15,"R0:"+A$+"="+A$:INPUT#15,ER:CLOSE15 60010 IF ER<>63 THEN PRINT"[147]":END 60011 Q$=CHR$(34):POKE646,PEEK(53281):PRINT"[147]" 60020 PRINT"LOAD"Q$A$Q$",8" 60030 PRINT"RUN":POKE631,13:POKE632,13:POKE198,2:END